#include <stdio.h>

int main(){
    int a = 10;
    int b = 30;
    //行尾风格
//    if(a > b){
//        return a;
//    }else{
//        return b;
//    }

    //次行风格
//    if(a > b)
//    {
//        return a;
//    }
//    else
//    {
//        return b;
//    }
//    printf("hello world\n");
//    printf("hello c\n");


    /*
     * %c : char 型数据
     * %d : 十进制整数(int)
     * %f : 浮点数(float)
     * %ld : 十进制整数(long)
     * %lf : 十进制浮点数(double)
     * %p : 指针
     * %s : 字符串
     * %u : 十进制无符号整数(unsigned int)
     * */

    //举例1:%d
    int num = 10;
    printf("count is %d\n" , num);//count is 10
    printf("There are %i students\n" , 5);//%i 和 %d 基本一致， 都是表示整数

    //%lf 和 %f
    float f = 3.1415926535f; //单精度浮点数
    double d = 3.1415926535;//双精度浮点数

    //使用%f输出单精度浮点数
    printf("Float : %f\n" , f);//Float : 3.141593
    //使用%lf输出双精度的浮点数
    printf("Double: %lf\n" , d);//Double: 3.141593 默认输出都是六位

    //[1:因为是单入口文件，1.所以需要插件，需要加入，需要reload,需要选
    // 2.单精度就不准了，所以有双精度  所以 ， 没有完美的事情]
    //使用%f输出单精度浮点数.保留八位小数
    printf("Float : %.8f\n" , f);//Float : 3.14159274 六位是准的，八位就不准了
    printf("Double : %.8lf\n" , d);//Double : 3.14159265 还是比较准的

    //举例3：%c
    char level = 'A';
    printf("this score level is :%c\n" , level);

    //%s
    printf("%s是我最喜欢的冷门歌手\n" , "孙燕姿");

    //多个占位符
    //输出文本里面可以使用多个占位符
    printf("%s有%d部手机\n" , "老板" , 2);

    //printf()可以定制占位符的输出格式
    //格式1.限定宽度
    //printf()允许限定占位符的最小宽度
    printf("%-5d\n" , 123);

    //浮点数的最小宽度为12
    printf("%12f\n" , 123.45);

    printf("%+d\n" , 11);
    printf("%+d\n" , -11);

    //限定小数位
    //.只保留两位小数
    printf("Number is %.2f\n" , 0.8);
    printf("%6.2f\n" , 0.8);

    //最小宽度和小数数位这两个限定值,都可以使用*代替
    printf("%*.*f" , 6 , 2 , 0.8);
    //等同于
    printf("%6.2f\n" , 0.8);






    return 0;

}
